#ifndef FREYALIB_GLOBAL_H
#define FREYALIB_GLOBAL_H

#include <QtCore/qglobal.h>

#if defined(FREYALIB_LIBRARY)
#  define FREYALIBSHARED_EXPORT Q_DECL_EXPORT
#else
#  define FREYALIBSHARED_EXPORT Q_DECL_IMPORT
#endif

#define FREYALIB_KEY_LIBCONFIG          "FreyaLib_Config"
#define FREYALIB_KEY_SUPVER             "FreyaLib_Cfg_SupportVer"
#define FREYALIB_KEY_CMDDEF             "FreyaLib_Cfg_Commands"

#define FREYALIB_CMD_PLUGINREQUEST      0x0000000010000000ULL   //FreyaLib_Cmd_Plug-inRequest
#define FREYALIB_CMD_PLUGINRESULT       0x0000000020000000ULL   //FreyaLib_Cmd_Plug-inResult
#define FREYALIB_CMD_CONNECTREQUEST     0x0000000030000000ULL   //FreyaLib_Cmd_ConnectRequest
#define FREYALIB_CMD_CONNECTRESULT      0x0000000040000000ULL   //FreyaLib_Cmd_ConnectResult
#define FREYALIB_CMD_PLUGINAUTHREQUEST  0x0000000050000000ULL   //FreyaLib_Cmd_PluginAuthRequest
#define FREYALIB_CMD_PLUGINAUTHREPLAY   0x0000000060000000ULL   //FreyaLib_Cmd_PluginAuthReplay
#define FREYALIB_CMD_CMDREGREQUEST      0x0000000070000000ULL   //FreyaLib_Cmd_CommandRegisterRequest

#define FREYALIB_CMD_PLUGINCONNECTED    0x0000000080000000ULL   //FreyaLib_Cmd_Plug-inConnectedToExt
#define FREYALIB_CMD_PLUGINCUTED        0x0000000090000000ULL   //FreyaLib_Cmd_Plug-inDisconnectedFromExt
#define FREYALIB_CMD_EXTHOSTCONNECTED   0x00000000a0000000ULL   //FreyaLib_Cmd_ExtConnectedFromPlug-in
#define FREYALIB_CMD_EXTHOSTCUTED       0x00000000b0000000ULL   //FreyaLib_Cmd_ExtDisconnectedToPlug-in

#define FREYALIB_CMD_PLUGINCHECK        0x00000000c00000ffULL   //FreyaLib_Cmd_Plug-in receive check
#define FREYALIB_CMD_EXTCHECK           0x00000000d00000ffULL   //FreyaLib_Cmd_Ext receive check

enum BASEDATA_PRIORITY
{
    BD_Priority_Low,
    BD_Priority_Nor,
    BD_Priority_Hig,
};

#define FREYALIB_FLG_PLUGINID           "FreyaLib_DataFlag_PluginID"
#define FREYALIB_FLG_PLUGINPORT         "FreyaLib_DataFlag_PluginPort"
#define FREYALIB_FLG_REQUESTER          "FreyaLib_DataFlag_Requester"
#define FREYALIB_FLG_WAITTIME           "FreyaLib_DataFlag_WaitTime"
#define FREYALIB_FLG_TIMESTAMP          "FreyaLib_DataFlag_TimeStamp"
#define FREYALIB_FLG_PRIORITY           "FreyaLib_DataFlag_Priority"
#define FREYALIB_FLG_PROPERTY           "FreyaLib_DataFlag_Property"
#define FREYALIB_FLG_ARGS               "FreyaLib_DataFlag_Arguments"
#define FREYALIB_FLG_LOCAL              "FreyaLib_DataFlag_Local"

#define FREYALIB_TYP_CMD                "FreyaLib_Type_Command"
#define FREYALIB_TYP_ALLVALUE           "FreyaLib_Type_AllValue"

#define FREYALIB_TYP_PLUGINID           "FreyaLib_Type_PluginId"
#define FREYALIB_TYP_PLUGINNAME         "FreyaLib_Type_PluginName"
#define FREYALIB_TYP_PLUGINPATH         "FreyaLib_Type_PluginPath"
#define FREYALIB_TYP_PLUGINCFGMD5       "FreyaLib_Type_PluginCfgMd5"
#define FREYALIB_TYP_PLUGINMSGAUTH      "FreyaLib_Type_PluginMsgAuth"
#define FREYALIB_TYP_PLUGINCMDAUTH      "FreyaLib_Type_PluginCmdAuth"

#endif // FREYALIB_GLOBAL_H
